地图显示事件监听 Sample详情

最后更新时间:2020年12月8日

当对地图进行移动、缩放、旋转等操作时,地图视图不断在刷新、变化,并且能够监听到种种变化,如:级别变化、旋转角度变化、中心点变化、位置变化、地图刷新、动画操作。MapView地图视图控件提供了对应的监听器来捕捉事件,并在回调方法中提供变化前后的数值。

重要说明:这几种监听事件提供的回调函数都是在子线程中响应的,获取其中信息后如果需要操作UI界面,则需回到主线程操作。

具体请参考API:com.zondy.mapgis.map.view.mapview程序包中的MapView类方法与监听事件。

1 地图级别变化监听

监听地图缩放级别的变化情况,可获取变化前后的地图分辨率。

//实例化地图视图级别变化监听器
MapViewZoomChangedListener zoomchangelistener=new MapViewZoomChangedListener() {
	@Override
	public void mapViewZoomChanged(MapView mapView, double oldResolution, double newResolution) {
		//可以获取地图级别发生变化前后的分辨率
	}
};
//开启事件监听:为地图视图对象设置监听器
mapView.setZoomChangedListener(zoomchangelistener);

2 地图旋转角度变化监听

监听地图旋转角度的变化情况,可获取旋转前后的角度值。

//实例化地图视图旋转角度变化监听器
MapViewRotateChangedListener anglechangelistener=new MapViewRotateChangedListener() {
	@Override
	public void mapViewRotateChanged(MapView mapView, float oldAngle, float newAngle) {
		//获取地图旋转角度发生变化前后的角度值
	}
};
//开启事件监听:为地图视图对象设置监听器
mapView.setRotateChangedListener(anglechangelistener);

3 地图视图中心点变化监听

监听地图视图中心点的变化情况,获取变化前后的地图视图中心点坐标。

//实例化地图视图中心点变化监听器
MapViewCenterChangedListener centerchangelistener=new MapViewCenterChangedListener() {
	@Override
	public void mapViewCenterChanged(MapView mapview, Dot dot, Dot dot1) {
		//可以获取地图视图中心点发生变化前后的地图坐标点
	}
};
//开启事件监听:为地图视图对象设置监听器
mapView.setCenterChangedListener(centerchangelistener);

4 地图位置变化监听

监听地图位置的变化情况,可获取变化前后的地图位置MapPosition信息,具体包括:中心点、分辨率、旋转中心、旋转角、倾斜角信息。

//实例化地图位置变化监听器
MapView.MapViewPositionChangedListener mapViewPositionChangedListener=new MapView.MapViewPositionChangedListener() {
	@Override
	public void mapViewPositionChanged(MapPosition mapPosition, MapPosition mapPosition1) {
		//获取地图变化的前后位置,从MapPosition对象中可获取到地图位置的诸多要素:中心点、分辨率、旋转中心、旋转角、倾斜角
	}
};
//开启事件监听:为地图视图对象设置监听器
mapView.setCenterChangedListener(mapViewPositionChangedListener);

5 刷新监听

监听地图刷新的事件,可判断地图刷新开始、完成的时间节点。

//实例化地图视图刷新监听器
MapViewRefreshListener refreshchangelistener=new MapViewRefreshListener() {
	@Override
	public void mapViewWillStartRefresh(MapView arg0) {
		//地图开始刷新
	}
	@Override
	public void mapViewDidFinishRefresh(MapView arg0) {
		//地图刷新完成
	}
};
//开启事件监听:为地图视图对象设置监听器
mapView.setRefreshListener(refreshchangelistener);

6 动画监听

监听地图的动画操作,可判断动画开始、结束的时间节点。

//实例化地图视图动画监听器
MapViewAnimationListener animationchangelistener=new MapViewAnimationListener() {
	@Override
	public void mapViewAnimationStart(MapView mapView, int animationType) {
		//动画开始,并且可以获取到动画的类型
	}
	@Override
	public void mapViewAnimationFinish(MapView mapView, int animationType, boolean normalFinish) {
		//动画结束
	}
};
//开启事件监听:为地图视图对象设置动画监听器
mapView.setAnimationListener(animationchangelistener);

地图动画类型包括:

地图显示事件监听.jpg